<template>
    <div o-Container>
        <o-list v-bind:source="list.budget" v-bind="{ created: create, modified: modify, exported: output }" />
        <o-dialog v-bind:source="panel" v-bind="{ opened: load, closed: load }">
            <template slot="content">
                <o-item v-bind:source="item.budget" v-bind="{ saved: save, backed: back }"></o-item>
            </template>
        </o-dialog>
    </div>
</template>
  
<script>
export default {
    name: "mms_data_budget_list", /* 这个name暂时不知道用啥用，根据官方文档说的是方便排错的 */
    data() {
        return {
            octopus: this.$parent.octopus,
            list: {
                budget: {
                    data: {
                        id: 779, // 菜单表的八爪鱼ID
                        cellData: [
                            { name: "CreateTime" , width: 150 },	// CreateTime
                            { name: "Month", searchKey: "=" , width: 150 },	// 所属月份
                            { name: "Price" , width: 150 },	// 单价
                            { name: "ProjectID", searchKey: "=" , width: 180 },	// ProjectID
                        ],
                    },
                    exportName: '光伏能耗计费模板' //导出报表名称
                },
            },
            item: {
                budget: {
                    // 以下参数默认由组件内部创建，但是如果有需要，开发人员可在这里提前设置，组件将按照您的预期渲染。
                    data: {
                        id: 779,
                        value: "",
                        cellData: [
                            { name: "CreateTime" , width: 150 },	// CreateTime
                            { name: "Month", width: 150 },	// 所属月份
                            { name: "Price" , width: 150 },	// 单价
                            { name: "ProjectID", width: 150 },	// ProjectID
                        ]
                    },
                },
            },
            panel: {
                visible: false,
            },
        }
    },
    created() {
        // this.init();
    },
    methods: {
        // init: function () {
        //     let url = this.octopus.vue.$route.path;
        //     // 如果是 MDM 则进行过滤
        //     if (url.indexOf("/MDM/") > -1) {
        //         this.octopus.tools.parseCell(this.list.budget.data, "ProjectID").filterValue = this.octopus.passport.project; //过滤所属项目
        //         this.octopus.tools.parseCell(this.list.budget.data, "ProjectID").searchKey = null; //过滤所属项目
        //         this.octopus.tools.parseCell(this.item.budget.data, "ProjectID").link = [{
        //             mapping: "CompanyID",
        //             value: this.octopus.passport.authorization.company
        //         }]; //过滤所属项目
        //     }
        // },
        create: function () {
            this.item.budget.data.value = null;
            this.item.budget.control.load(); //刷新
            // this.octopus.tools.parseCell(this.item.budget.data, "ProjectID").defaultValue = this.octopus.passport.project; //过滤所属项目
            this.octopus.tools.parseCell(this.item.budget.data, "CreateTime").defaultValue = this.octopus.tools.dateFormat(new Date(), 'yyyy-MM-dd HH:mm:ss');
            //过滤创建时间
            this.panel.visible = true;//打开
        },
        modify: function (row) {
            // 加载对应的列关联绑定数据
            this.item.budget.data.value = row.ID;
            this.item.budget.control.load();
            this.panel.visible = true; //打开
        },
        save: function (data) { //同一个Code，不能有相同的KeyValue
            // 刷新list
            this.octopus.tips.success("data");
            this.list.budget.control.load(); //刷新
            this.back(); //返回
        },
        back: function () {
            this.panel.visible = false; //取消
        },
        // 导出
        output: function (data) {
            this.octopus.tips.success("下载完成。");
        }
    },
    props: ["oData"] //数据
}
</script>
  